#ifndef _CNUM_FUNCTION_H_
#define _CNUM_FUNCTION_H_

/**
 * This interface defines a real-to-real function with one argument in the format
 * f(x).
 *
 */
class Function {
public:
    virtual ~Function() {};
    /**
     * a real-to-real function with one argument, y=f(x)
     *
     * @param x the function argument
     * @return the function result
     */
    virtual double f(double x) const = 0;
};

#endif
